package com.mentaleye.biz;

import java.util.List;
import java.util.Map;

import com.mentaleye.bean.TimeTableBean;
import com.mentaleye.dal.model.TimeTableExample;
import com.mentaleye.util.CommonResult;

public interface TimeTableBiz {

	/**
	 * 添加课表课程
	 * @param timeTableBean 实体类
	 * @return 返回处理结果
	 */
	public CommonResult addByBean(TimeTableBean timeTableBean);
	
	/**
	 * 批量添加课表课程
	 * @param list 实体类集合
	 * @return 返回处理结果
	 */
	public CommonResult addList(List<TimeTableBean> list);
	
	/**
	 * 根据主键删除
	 * @param id 主键
	 * @return 返回处理结果
	 */
	public CommonResult removeById(Integer id);
	
	/**
	 * 根据课表编号删除
	 * @param timeTableId 课表编号
	 * @return 返回处理结果
	 */
	public CommonResult removeByTimeTableId(Integer timeTableId);
	
	/**
	 * 根据条件删除某一条课表中的课程
	 * @param curriculumId 课程编号
	 * @param beginTime 课程上课时时间
	 * @param endTime 课程下课时间
	 * @return 返回处理结果
	 */
	public CommonResult removeByTime(Integer curriculumId, String beginTime, String endTime);
	
	/**
	 * 根据条件删除
	 * @param example 条件
	 * @return 返回处理结果
	 */
	public CommonResult removeByExample(TimeTableExample example);
	
	/**
	 * 根据主键集合批量删除
	 * @param ids 主键集合
	 * @return 返回处理结果
	 */
	public CommonResult removeByIdList(List<Integer> ids);

	/**
	 * 根据班级批量删除
	 * @param oaclassIds 班级ID集合
	 * @return 返回处理结果
	 */
	public CommonResult removeByClassIdList(List<Integer> oaclassIds);
	
	/**
	 * 修改课表课程
	 * @param timeTableBean 实体类
	 * @return 返回处理结果
	 */
	public CommonResult modify(TimeTableBean timeTableBean);

	/**
	 * 修改课表课程的授课教师
	 * @param map 修改条件
	 * @return 返回处理结果
	 */
	public CommonResult modifyTeacherByMap(Map<String,Object> map);
	
	/**
	 * 批量修改课表课程
	 * @param list 实体类集合
	 * @return 返回处理结果
	 */
	public CommonResult modifyByList(List<TimeTableBean> list);
	
	/**
	 * 根据条件修改课表课程
	 * @param timeTableBean 修改内容
	 * @param example 修改条件
	 * @return 返回处理结果
	 */
	public CommonResult modifyByExample(TimeTableBean timeTableBean,TimeTableExample example);
	
	/**
	 * 根据主键查询
	 * @param id 主键 
	 * @return 返回查询结果
	 */
	public TimeTableBean queryById(Integer id);
	
	/**
	 * 根据课表编号查询
	 * @param timeTableId 课表编号
	 * @return 返回查询结果
	 */
	public List<TimeTableBean> queryByTimeTableId(Integer timeTableId);
	
	/**
	 * 根据班级查询课表课程
	 * @param oaClassId 班级编号
	 * @return 返回查询结果
	 */
	public List<TimeTableBean> queryByClassId(int oaClassId);
	
	/**
	 * 根据条件查询
	 * @param example 查询条件
	 * @return 返回处理结果
	 */
	public List<TimeTableBean> queryByExample(TimeTableExample example);
	
	/**
	 * 根据课表编号和日期查询日期之后的课程
	 * @param timeTableId 课表编号
	 * @param beginTime 日期
	 * @return 返回这个课表中这个日期之后的所有课程
	 */
	public List<TimeTableBean> queryByBeginTime(Integer timeTableId,String beginTime);
}
